package org.example.common.constant;

import cn.hutool.core.util.StrUtil;
import org.example.pinda.util.string.StrPool;

/**
 * 用于统一管理和生成缓存的region和key
 *
 * @author ryan fawcett
 */
public interface CacheKey {
    /**
     * 验证码前缀
     */
    String CAPTCHA = "captcha";
    /**
     * 资源前缀
     */
    String RESOURCE = "resource";
    /**
     * 用户资源前缀
     */
    String USER_RESOURCE = "user_resource";
    /**
     * 所有需要鉴权的资源
     */
    String RESOURCE_NEED_TO_CHECK = "resource_need_to_check";

    /**
     * 构建key
     */
    static String buildKey(Object... args) {
        if (args.length == 1) {
            return String.valueOf(args[0]);
        } else if (args.length > 0) {
            return StrUtil.join(StrPool.COLON, args);
        } else {
            return StrPool.EMPTY;
        }
    }
}
